package proyectoFC_2_3_3.koyicabuto;

import proyectoFC_2_3_3.koyicabuto.funciones.FuncionesBaseDatos;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;


public class TabEventoGrupoActivity extends ListActivity{
	
	private ListView listaEventosGrupo = null;
	private Long idGrupoSeleccionado = null;
	private Cursor mCursor = null;
	private FuncionesBaseDatos funcionesBaseDatos = new FuncionesBaseDatos();
	private SQLiteDatabase gruposDataBase = null;
	
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tabeventogrupo);
        
	}
	
	private void cargaEventos(){
		
		Cursor cursor = null;
		
		String[] parametros = new String[]{idGrupoSeleccionado.toString()};
		String selectEventos = "SELECT _id, EV_NOMBRE, EV_LONGITUD, EV_LATITUD, EV_GR_ID, EV_DESCRIPCION FROM EVENTOS WHERE EV_GR_ID = ? ";
		
		gruposDataBase = funcionesBaseDatos.conectaBaseDeDatos(this);	
		
		try{
			if(gruposDataBase != null){
				cursor = gruposDataBase.rawQuery(selectEventos, parametros);
				cursor.moveToFirst();

				funcionesBaseDatos.cierraBaseDeDatos(gruposDataBase);
			}			
		
		}catch (Exception e) {
			System.out.println("Excepcion en cargaEventosGrupo: " +e.getMessage());
		}
		
		mCursor = cursor;
	}
	
	public void eliminaEvento(Long idEvento, String nombreEvento){
		crearDialogoAlerta(null, "¿Está seguro de eliminar el evento: " + nombreEvento, idEvento);		
	}
	
	private void crearDialogoAlerta(String titulo, String mensaje, final Long idEvento){
	    AlertDialog alertDialog = new AlertDialog.Builder(this).create();
	    
	    if(titulo != null){
	    	alertDialog.setTitle(titulo);
	    }
	    alertDialog.setMessage(mensaje);
	    alertDialog.setButton("Cancelar", new OnClickListener() {
	        public void onClick(DialogInterface dialog, int which) {
	        }
	    });
	    alertDialog.setButton2("Eliminar", new OnClickListener() {
	        public void onClick(DialogInterface dialog, int which) {
	        	eliminaEventoBaseDatos(idEvento);
	        }
	    });
	    alertDialog.show();	 
	}
	
	public void eliminaEventoBaseDatos(Long idEvento){
		boolean error = false;
		SQLiteDatabase gruposDataBase = funcionesBaseDatos.conectaWritableBaseDeDatos(this);		
		
		try{
			if(gruposDataBase != null){
				gruposDataBase.execSQL("DELETE FROM EVENTOS WHERE _id = " + idEvento );
				
				funcionesBaseDatos.cierraBaseDeDatos(gruposDataBase);
			}
		}catch (Exception e) {
			error = true;
			System.out.println("Excepcion en eliminaEvento: " +e.getMessage());
		}
		if(!error){
			updateEventos();
			Toast.makeText(this, "Eliminado correctamente.", Toast.LENGTH_SHORT).show();
		}
	}
	
	private void updateEventos(){
		cargaEventos();
		startManagingCursor(mCursor);
		ListAdapter adapter = new CustomCursorAdapterEventos(this, mCursor, this);
		listaEventosGrupo = this.getListView();
		listaEventosGrupo.setAdapter(adapter);
	}
	
	public void onClickBotonAnadirEventos(View view){
		Intent i = new Intent(this, NuevoEventoActivity.class);
		i.putExtra("idGrupoSeleccionado", idGrupoSeleccionado);
		startActivity(i);
		
		mCursor.close();
	}
	
	public void onClickBotonVolver(View view){
		Intent i = new Intent(this, ListaGruposActivity.class);
		startActivity(i);
	}
	
	@Override
	public void onResume(){
		super.onResume();
		
		//Obtenemos las variables que vienen de GruposListViewActivity
        Bundle extras = getIntent().getExtras();
		if(extras != null){
			idGrupoSeleccionado = extras.getLong("idGrupoSeleccionado");
		}
		
		//Cargamos el cursor que pasaremos al ListView
		cargaEventos();
		startManagingCursor(mCursor);
		ListAdapter adapter = new CustomCursorAdapterEventos(this, mCursor, this);
		listaEventosGrupo = this.getListView();
		listaEventosGrupo.setAdapter(adapter);
	}
}